Robotic assistant and method for controlling the same

ABSTRACT

A robotic assistant includes a wheeled base, a body positioned on the base, a foldable seat rotatably connected to the body, an actuator to rotate the foldable seat with respect to the body, and a control system that receives command instructions. The actuator is electrically coupled to the control system. In response to the command instructions, the control system is to control the actuator to rotate the foldable seat to a folded position or an unfolded position. The control system is further to detect whether an external force from a user has applied to the foldable seat, and release the actuator to allow the foldable seat to be manually rotated.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of and claims priority toco-pending application Ser. No. 17/467,461, which was filed on Sep. 7,2021. The application is incorporated by reference herein in itsentirety.

TECHNICAL FIELD

The present disclosure generally relates to robots, and particularly toa smart robotic assistant that can provide walking assistance, walkingtraining, and body training.

BACKGROUND

There are growing demands on robotics in the service sector for manyyears due to the age quake, silver society and man power shortage. Assuch, robotic assistants have attracted significant attention in recentyears.

For example, one type of a robotic assistant can be designed to helpsupport a portion of the user's bodyweight to reduce the load on theuser's legs while walking, leading to reduced fatigue and less physicalexertion. For example, plentiful studies on assistive robots can befound, including the applications for the upper limb, for the lower limband for the assisting or training of the whole body.

These robotic assistants typically include wheels for movement and avertical body having handles for users to grip. Some of the roboticassistants may include a seat that allows a user to sit thereon.However, these robotic assistants are humanoid, which focus on thevirtual or psychological interaction with people without addressing toomuch on the physical interaction, making it difficult to provide abetter a human-robot interaction.

Therefore, there is a need to provide a robotic assistant to overcomethe above-mentioned problems.

BRIEF DESCRIPTION OF DRAWINGS

Many aspects of the present embodiments can be better understood withreference to the following drawings. The components in the drawings arenot necessarily drawn to scale, the emphasis instead being placed uponclearly illustrating the principles of the present embodiments.Moreover, in the drawings, all the views are schematic, and likereference numerals designate corresponding parts throughout the severalviews.

FIG. 1 is a schematic isometric view of a robotic assistant according toone embodiment.

FIG. 2 is a schematic isometric view of the robotic assistant, withcertain components omitted for clarity.

FIG. 3 a is similar to FIG. 2 , but viewed from a different perspective.

FIG. 3 b is similar to FIG. 3 , but showing a display in an extendedposition.

FIG. 4 is an enlarged view of a portion A of FIG. 3 a.

FIG. 5 is an enlarged view of a portion B of FIG. 3 a.

FIG. 6 is a schematic diagram showing the display in two differentpositions.

FIG. 7 is a schematic block diagram of the robotic assistant accordingto one embodiment.

FIG. 8 is a schematic flowchart of a method for controlling the roboticassistant according to one embodiment.

FIG. 9 is a schematic flowchart of a method for controlling the roboticassistant according to one embodiment.

FIG. 10 shows two exemplary images that are successively captured by thecamera of the robotic assistant according to one embodiment.

FIG. 11 is a schematic flowchart of a method for controlling the roboticassistant according to one embodiment.

FIG. 12 shows an exemplary image that shows a key point of the face of auser according to one embodiment.

FIG. 13 is a schematic diagram of a simplified model of the roboticassistant according to one embodiment.

FIG. 14 a is a diagram showing the relationship between the face of theuser and the image of the face in an image plane when the user isstanding at a predetermined location from a camera center.

FIG. 14 b is a diagram showing the relationship between the face of theuser and the image of the face in the image plane when the user isstanding at a random location.

FIG. 15 is a schematic block diagram of the robotic assistant accordingto one embodiment.

FIG. 16 is a flowchart of a method for controlling the display in anautomatic control mode and in a manual control mode according to oneembodiment.

FIG. 17 shows a robotic assistant according to one embodiment, with afoldable seat in a folded position.

FIG. 18 is similar to FIG. 17 , with the foldable seat in an unfoldedposition.

FIG. 19 is a schematic isometric view of the foldable seat according toone embodiment.

FIG. 20 is a top view of the foldable seat, with a seat cover omittedfor clarity.

FIG. 21 is an isometric exploded view of an assembly including anactuator and a support member.

FIG. 22 is similar to FIG. 21 , but viewed from a different perspective.

FIG. 23 is an isometric view of an assembly including another supportmember and components connected to the support member.

FIG. 24 is an isometric view of the foldable seat, with a door in anopen position.

FIG. 25 is flowchart of a method for controlling the foldable seataccording to one embodiment.

FIG. 26 is a schematic diagram of a dynamic model of the foldable seataccording to one embodiment.

FIG. 27 is a schematic diagram of an admittance control scheme.

FIG. 28 is a schematic diagram for performing a compliant controlaccording to one embodiment.

DETAILED DESCRIPTION

The disclosure is illustrated by way of example and not by way oflimitation in the figures of the accompanying drawings, in which likereference numerals indicate similar elements. It should be noted thatreferences to “an” or “one” embodiment in this disclosure are notnecessarily to the same embodiment, and such references can mean “atleast one” embodiment.

Although the features and elements of the present disclosure aredescribed as embodiments in particular combinations, each feature orelement can be used alone or in other various combinations within theprinciples of the present disclosure to the full extent indicated by thebroad general meaning of the terms in which the appended claims areexpressed.

FIG. 1 shows an isometric view of a robotic assistant 100. In oneembodiment, the robotic assistant 100 can be designed to help support aportion of a user's bodyweight to reduce the load on the user's legswhen the user (e.g., a care seeker or a patient) is walking. The roboticassistant 100 can provide support/guide to people during their walking,so that they can maintain balance and walk safely. In one embodiment,the robotic assistant 100 may be employed in facilities, such as ahealthcare facility, an elderly care facility, an assisted livingfacility, and the like, to assist senior people when they are walking.However, the robotic assistant 100 may be employed in other facilities.For example, the robotic assistant 100 may be employed in hospitals toprovide walking assistance, body training, and fall prevention to peoplewho temporarily lose their walking ability because of accidents ordiseases.

Referring to FIGS. 2 3 a, and 3 b, in one embodiment, the roboticassistant 100 may include a base 10, an elevation mechanism 20positioned on the base 10, a display 30 rotatably mounted on theelevation mechanism20, a camera 40 positioned on the display 30, and acontrol system 50 (see FIG. 7 ) that receives command instructions froma host computer and a graphic user interface (GUI) displayed on adisplay 30 to allow users (e.g., healthcare professionals and careseekers) to directly control the robotic assistant 100. In response tothe command instructions, the control system 50 controls movement of theelevation mechanism 20 and rotation of the display 30, and/or othermechanical or software aspects of the robotic assistant 100.

In one embodiment, the base 10 may provide a movement mechanism for therobotic assistant 100 to move from location to location. In oneembodiment, the base 10 includes a body, two differentially driven wheelmechanisms, and one or more other wheels that are connected to the body.The wheel mechanisms allow for movement of the base 10 along a desiredpath, while the one or more other wheels allow for balance and stabilityof the base 10. The one or more other wheels may be castor wheels oromni-directional driving wheels.

In one embodiment, the elevation mechanism 20 is positioned on the topof the base 10. Via actuation of the elevation mechanism 20, the display30 can move up and down in a vertical direction. When the display 30 isin a lowermost retracted position, the elevation mechanism 20 enablesthe robotic assistant 100 to have a limited height, which facilitatesstability during movement and travel of the robotic assistant 100. Theelevation mechanism 20 can be actuated to adjust the robotic assistant100 to different heights so that the robotic assistant 100 can have theflexibility to adapt to users of different heights. Further descriptionof the elevation mechanism 20 is provided below.

In one embodiment, the robotic assistant may include sensors that enablethe robotic assistant 100 to perceive the environment where the roboticassistant 100 operates. In one embodiment, the sensors may includeranging sensors that require no physical contact with objects beingdetected. They allow the robotic assistant 100 to perceive an obstaclewithout actually having to come into contact with it. The rangingsensors may include infrared (IR) sensors, ultrasonic sensors, one ormore light detection and ranging (LiDAR) sensors, near fieldcommunication (NFC), and RFID sensors/readers. In one embodiment, thesensors may include inertial measurement unit (IMU) sensors, each ofwhich incorporates at least one accelerometer and at least onegyroscope. The one or more LiDAR sensors are used to create anenvironment map. In combination with the IMU sensors, the LiDAR sensorsare used to determine a real-time position of the robotic assistant 100in the environment map. Data from the ranging sensors are used to detectobstacles, such as bumps, over-hanging objects, spills, and otherhazards during movement of the robotic assistant 100, and the roboticassistant 100 can alert the user to bypass the detected obstacles. Thesesensors can be positioned along the base 10 or other positions of therobotic assistant 100.

The control system 50 is electronically connected to the base 10, theelevation mechanism 20, and the sensors, and is configured to receivecommand instructions to control the robotic assistant 100. The commandinstructions can be received from the control system 50 in response tomovement/action of the robotic assistant 100, or the control system 50can receive command instructions from a host computer either wirelesslyor through a wired connection, or through the GUI on the display 30. Thecontrol system 50 can also receive command instructions directly from auser. For example, the robotic assistant 100 can detect whether handlesof the robotic assistant 100 are held by a user. In some modes, thecontrol system 50 receives a command instruction after a user holds thehandles. In response to the command instructions, the control system 50controls movement of the base 10, and controls the elevation mechanism20 to actuate vertical movement of the display 30. Further descriptionof the control system 50 is provided below.

In one embodiment, the base 10 may be a differential drive platform. Thebase 10 may include two independently actuated wheel mechanisms and onecastor wheel mechanisms. The two wheel mechanisms are spaced apart fromeach other and arranged at opposite sides of the base 10, with theirrotation axes aligned with each other and extending along a widthwisedirection of the base 10. The castor wheel mechanism can include anomi-directional wheel and is arranged adjacent to one end of the base 10opposite the wheel mechanisms. It should be noted that the number andarrangement of the wheel mechanisms and castor wheel mechanism maychange according to actual needs. For example, in an alternativeembodiment, two wheel mechanisms and two castor wheel mechanisms may berespectively arranged at four corners of the base 10.

Referring to FIG. 3 b, in one embodiment, the elevation mechanism 20 mayinclude an actuator 21 mounted on the base 10, a main body 23 that isvertically positioned on the base 10, and a sliding member 25 slidablyreceived in the main body 23. The actuator 21 is configured to drive thesliding member 25 to move up and down in the vertical direction. Thedisplay 30 is thus movable between a lowermost retracted position (seeFIGS. 1-3 a) and a determined, extended position (see FIG. 3 b ).

In an other embodiment, the elevation mechanism 20 may include a liftingmechanism arranged within the main body 23 and the sliding member 25.The actuator 21 may be a linear motor and is configured to drive thelifting mechanism to elongate or retract in the vertical direction. Theactuator 21 is configured to apply a pushing force or a pulling force tothe lifting mechanism to drive the lifting mechanism to elongate orretract in the vertical direction, so as to drive the sliding member 25to move up and down in the vertical direction. In one embodiment, thelifting mechanism may include a lead screw that is coupled to the outputshaft of the motor, and a threaded collar that is coupled to andslidable along the lead screw. By engagement of the threaded collar withthe lead screw, rotary motion from the actuator 21 is converted intotranslational motion. The elevation mechanism can then drive the display30 to move up and down.

In yet another embodiment, the lifting mechanism may be a scissor liftmechanism. Specifically, the lifting mechanism may include one or morepairs of supports and that are rotatably connected to one another andeach pair of supports and form a crisscross “X” pattern. The arrangementof these pairs of supports and is well known and will not be describedin detail here. It should be noted that the lead screw and threadedcollar, and the scissor lift mechanism are just examples of the liftingmechanism. The lifting mechanism may be of other configurationsaccording to actual needs.

In one embodiment, the robotic assistant 100 may further include a firsthousing 201 (see FIG. 1 ) mounted on the top of the base 10. Theelevation mechanism 30 is arranged within the first housing 201.

Referring to FIGS. 2 and 3 a, in one embodiment, the robotic assistant100 may further include a display holder 301 positioned on the top ofthe elevation mechanism 20 and a motor 302 fixed to the display holder301. The display 30 is indirectly mounted on the elevation mechanism 20through the display holder 301. The motor 302 is configured to drive thedisplay 30 to rotate with respect to the display holder 301. In oneembodiment, the display holder 301 is a hollow frame formed by a numberof plates including a base plate 3011 and two vertical plates 3012 and3013. The base plate 3011 is fixed to the top of the sliding member 25of the elevation mechanism 20. The two vertical plates 3012 and 3013 arearranged at opposite sides of the base plate 3011. The display 30 isrotatably connected to the upper ends of the vertical plates 3012 and3013. In one embodiment, the display 30 may define a U-shaped recess 31,and the upper ends of the two vertical plates 3012 and 3013 are receivedin the recess 31, and are rotatably connected to the inner side surfacesof the recess 31.

In one embodiment, the motor 302 is arranged between in the spacebetween the vertical plates 3012 and 3013, and is fixed to the verticalplate 3012. In this case, the rotating motor shaft of the motor 302passes through a hole defined in the vertical plate 3012, and is fixedto the display 30. The display 30 is thus able to rotate together withthe motor shaft.

Referring to FIGS. 4 and 5 , in one embodiment, the robotic assistant100 may further include a rotary damper 303 coupled to the displayholder 301. The rotary damper 303 is configured to control speed ofrotation of the display 30. The rotary damper 303 is fixed to thevertical plate 3013. In one embodiment, the display 30 is connected tothe vertical plate 3013 through a connecting member 304 and the rotarydamper 303. The rotary damper 303 may define a through hole 3031. In oneembodiment, the through hole 3031 is defined in a rotor of the rotarydamper 303, and is a square hole. The connecting member 304 includes amain body 3041 and a shaft 3042. One end of the main body 3041 is fixedto the display 30, and the other opposite end is provided with the shaft3042 that is sized and shaped according to the square through hole 3031of the rotary damper 303. The main body 3041 passes through a throughhole 3014 defined in the vertical plate 3013, and the shaft 3042 passesthrough the square through hole 3031 of the rotary damper 303. Rotationcan thus be transmitted from the display 30 to the rotary damper 303.Specifically, when the connecting member 304 rotates together with thedisplay 30, the rotor of the rotary damper 303 is thus driven to rotate.Various types of dampers are available. For example, the rotary damper303 may utilize the principle of fluid resistance to dampen movement. Inthis example, the rotary damper 303 may include a main body, the rotor,a cap, and oil filled in the space defined by the main body, the rotorand the cap. The viscosity of the oil is used to provide the brakingforce to slow down the rotary motion of the display 30, which can ensuresmooth and gentle rotation of the display 30. It should be noted thatthe damper 303 of FIG. 4 is merely an illustrative example and othertypes of dampers may be used for speed control of the display 30according to actual needs.

Referring to FIG. 4 , in one embodiment, the robotic assistant 100 mayfurther include a limit switch 305 securely coupled to the displayholder 301. The limit switch 305 is configured to be activated inresponse to the display 30 rotating to a predetermined position. Thecontrol system 50 is configured to stop rotation of the display 30 inresponse to the limit switch 305 being activated. In one embodiment, thelimit switch 305 is an optical limit switch and is arranged adjacent tothe rotary damper 303. A block 306 is fixed to the end of the shaft 3042of the connecting member 304. The block 306 can thus rotate togetherwith the display 30. The limit switch 305 may he an infrared slottedoptical switch and may include an infrared source and a filteredinfrared phototransistor detector that are mounted exactly opposite eachother with a small, open gap between them. The limit switch 305 maydetect the presence of an object in the gap that blocks the light. Whenthe end of the block 306 moves into the gap of the limit switch 305, thelimit switch 305 is activated, and the control system 50 then sends asignal to the motor 302 to stop rotation of the display 30. It should benoted that the limit switch 305 can be other types of switches, such asa mechanical type limit switch. In one embodiment, the predeterminedposition refers to an original position as shown in FIGS. 1 and 2 . Whenthe display 30 is in the original position, the end of the block 306 isreceived in the gap of the limit switch 305.

Referring back to FIGS. 2 and 3 a, in one embodiment, the roboticassistant 100 may further include two handles 60 securely coupled to theelevation mechanism 20. The two handles 60 are configured to be fit intohands of a user to provide two hand grips. A user may hold the twohandles 60 while walking/standing, which allows the robotic assistant100 to provide an upward support force to the user, thereby helping theuser to maintain balance during his/her walking/standing. In oneembodiment, the two handles 60 are connected to the elevation mechanism20 through a substantially U-shaped bar 61. The robotic assistant 100may further include a second housing 62 (see FIG. 1 ) that is arrangedabove the first housing 201. The second housing 62 receives the U-shapedbar 61 therein and is fixed to the U-shaped bar 61.

In one embodiment, the display 30 may be a touch-sensitive displaydevice and each provide an input interface and an output interfacebetween the robotic assistant 100 and a user. The display 30 can displayvisual output to the user. The visual output may include graphics, text,icons, video, and any combination thereof. In one embodiment, when thedisplay 30 is in the original position as shown in FIG. 1 , the display30 faces the front of the robotic assistant 100 to display generalinformation, or allow telepresence of a user who is not actively usingthe walking function. When the display 30 rotates to a position to facebackward, the display 30 can display walking/training relatedinformation.

In one embodiment, the camera 40 may be an RGB camera and is arranged inthe bezel of the display 30. As shown in FIG. 6 , when the display 30 isin the original position, the camera 40 faces forward, and the camera 40can rotate together with the display 30 to a desired position to facebackward. The range of motion of the display 30/camera 40 can be set to165 degrees. However, the range of motion of the display30/camera 40 maychange according to actual needs.

Referring to FIG. 7 , in one embodiment, the control system 50 mayinclude a processor 51 and a storage 52 that stores computer readableinstructions. The processor 51 runs or executes various softwareprograms and/or sets of instructions stored in storage 52 to performvarious functions for the robotic assistant 100 and to process data. Theprocessor 51 may be a central processing unit (CPU), a general-purposeprocessor, a digital signal processor (DSP), an application specificintegrated circuit (ASIC), a field-programmable gate array (FPGA), aprogrammable logic device, a discrete gate, a transistor logic device, adiscrete hardware component, or a combination of some of or all of thesecomponents. The general-purpose processor may be a microprocessor or anyconventional processor or the like. The storage 52 may store softwareprograms and/or sets of computer readable instructions and may includehigh-speed random-access memory and may include non-volatile memory,such as one or more magnetic disk storage devices, flash memory devices,or other non-volatile solid-state memory devices.

In one embodiment, the robotic assistant 100 may include a number ofsensors 70 including a 3D camera 72, a LiDAR sensor 73, a number ofsensors 74, a number of ultrasonic sensors 75, and a number of IMUsensors 76. The 3D camera 72 may be disposed on the first housing 201.The IR sensors 74 and the ultrasonic sensors 75 may be disposed on thefirst housing 201. The IMU sensors 76 may be disposed on the base 10.The sensors 72 to 76 are configured to output data to the control system50 such that the control system 50 can perform localization, motionplanning, trajectory tracking control and obstacle avoidance for therobotic assistant 100. In one embodiment, electrocardiogram (ECG)sensors 77 may he imbedded in the handles 60 to measure the heartbeat ofthe user holding the handles 60. It should be noted that the roboticassistant 100 may have more sensors than shown.

In one embodiment, the robotic assistant 100 further includes a powersystem 81 that powers all key components of the robotic assistant 100.The power system 81 is mounted on the base 10, and may include a batterymanagement system (BMS), one or more power sources (e.g., battery,alternating current (AC)), a recharging system, a power failuredetection circuit, a power converter or inverter, a power statusindicator (e.g., a light-emitting diode (LED)) and any other componentsassociated with the generation, management and distribution ofelectrical power. The power system 81 may further include aself-charging unit that can be engaged with a docking charging stationin a fixed location, which allows the robotic assistant 100 to becharged. The battery management system manages a rechargeable battery,such as by protecting the battery from operating outside its safeoperating area, monitoring its state, calculating secondary data,reporting that data, controlling its environment, authenticating itand/or balancing it.

In one embodiment, the robotic assistant 100 may further include aspeaker 82 and a microphone 83 that provide an audio interface between auser and the robotic assistant 100. The microphone 83 receives audiodata, converts the audio data to an electrical signal that istransmitted as a command to the control system 50. The speaker 82converts the electrical signal to human-audible sound waves. The speaker82 and the microphone 83 enable voice interaction between a user and therobotic assistant. The speaker 82 may play music or other audio contentsto users for entertainment purpose. The robotic assistant 100 mayfurther include wireless communication interfaces 84, such as WIFI andBLUETOOTH modules. The robotic assistant 100 may further includewireless communication interfaces 84, such as WIFI and BLUETOOTHmodules. The robotic assistant 100 may further include an NFC subsystem85 that may include an NFC chip and an antenna that communicates withanother device/tag, which allows the NFC subsystem 85 to have an NFCreading function. The NFC subsystem 85 can be used for authorizationpurpose. That is, the NFC subsystem 85 can serve as a security mechanismto determine user privileges or access levels related to systemresources.

It should be noted that FIG. 7 shows only one example of the roboticassistant 100, and that the robotic assistant 100 may have more or fewercomponents than shown, may combine two or more components, or may have adifferent configuration or arrangement of the components. For example,the robotic assistant 100 may include a front light band and a rearlight band to illuminate the path for a user when the environment isdark. The robotic assistant 100 may include a storage unit for storingitems such that the robotic assistant 100 can deliver the items to adesired location. The various components shown in FIG. 7 may beimplemented in hardware, software or a combination of both hardware andsoftware, including one or more signal processing and/or applicationspecific integrated circuits.

FIG. 8 is a flowchart illustrating a method of controlling the roboticassistant 100 according to one embodiment, which includes the followingsteps. It should be noted that the order of the steps as shown in FIG. 8is not limited and can change according to actual needs.

Step S101: Receive command instructions. The processor 51 of the controlsystem 50 receives command instructions. For example, the processor 51may receive a command instruction from a user (e.g., care seeker) thatrequest the robotic assistant 100 to fetch an object from one locationand deliver the object to another location.

Step S201: Move the base 10 in response to a first command instruction.The processor 51 may analyze each command instruction and move the base10 to a determined location in response to a first command instruction.The first command instruction may include descriptions of locationswhere the robotic assistant 100 needs to reach. For example, when a user(e.g., care seeker) requests the robotic assistant 100 to fetch anddeliver an object, the first command instruction may includedescriptions of a starting location where the object is stored and atarget location where the object needs to be delivered. The processor 51may execute software programs and/or sets of instructions stored instorage 52 to perform localization, motion planning, and trajectorytracking such that the base 10 can determine its real-time position in aknown map during movement along a planned path. If there is a dynamicobstacle on the planned path, the processor 51 can plan a new path toavoid the obstacle. In other words, the base 10 may be controlled tofollow a prescribed path which will be adjusted if there are obstacleson the path. The base 10 can autonomously move first to the startinglocation and then to the target location. Additionally, the base 10 canbe controlled with command on the screen or control inputs inferred fromthe handles, which could be attached with load cells. This allows a userto directly control movement of the base 10.

Step S301: Control the elevation mechanism 20 to move the display 30 andthe handles 60 up and down in response to a second command instruction.The processor 51 may analyze each command instruction and control theelevation mechanism 20 to move the display 30 and the handles 60 up anddown in response to the second command instruction. For example, theprocessor 51 may receive a command instruction from a user (e.g., careseeker) and control the robotic assistant 100 to move autonomouslybetween determined positions. In this scenario, the processor 51 controlthe elevation mechanism 20 to move the display 30 and the handles 60down to the lowermost retracted position (see FIG. 1 ) such that therobotic assistant 100 can have a limited height, which facilitatesstability during movement and travel of the robotic assistant 100. Theprocessor 51 may receive a command instruction from a user (e.g., careseeker) who requests the robotic assistant 100 to provide assistancewhen the user is walking, the processor 51 can then determine the heightof the user and can move the display 30 and the handles 60 up to anextended position according to the height of the user. In this scenario,the extended position is not a fixed position and may change dependingon the height of the user. With such configuration, the roboticassistant 100 can have the flexibility to adapt to different users ofdifferent height, which allows different users to walk and push therobotic assistant 100 in a substantially upright pose.

Step S401: Rotate the display 30 in response to a third commandinstruction. The processor 51 may analyze each command instruction androtate the display 30 according to the third command instruction. Forexample, the processor 51 may receive a command instruction from a user(e.g., care seeker) and control the robotic assistant 100 to moveautonomously between determined positions. In this scenario, theprocessor 51 rotates the display 30 to its original position as shown inFIG. 1 such that the camera 40 faces forward and can detect objects infront of the robotic assistant 100 such that the robotic assistant 100can perceive the environment. The processor 51 may receive a commandinstruction from a user (e.g., care seeker) who requests the roboticassistant 100 to provide assistance when the user is walking, theprocessor 51 rotates the display 30 to a position where the camera 40faces backward and can detect the facial expressions or otherbio-characters of the user. As a result, the robotic assistant 100 canmonitor the tiredness of the user.

In one embodiment, the robotic assistant 100 can operate in differentmodes. For example, the robotic assistant 100 can operate in a firstmode or autonomous mode. In this mode, the control system 50 can performlocalization, motion planning, trajectory tracking control and obstacleavoidance based on the data outputted by the sensors 72 to 76, whichallows the robotic assistant 100 to move autonomously between a startinglocation and a target location so as to achieve an assigned task. Therobotic assistant 100 can operate in a second mode or sleep mode. Inthis mode, robotic assistant 100 goes into a low power state and remainsthat way. When the robotic assistant 100 in the first mode receives nouser input for a preset time period (e.g., 10 minutes) or the roboticassistant 100 is charged, the robotic assistant 100 is switched to thesecond mode. The robotic assistant 100 can be switched back to the firstmode after receiving a command from the user, such as a voice command, atouch on the display 30, etc.

The robotic assistant 100 can operate in a third mode or standingassistive mode. In this mode, the robotic assistant 100 serves as astable structure where the user can grab the handles 21 and stand upfrom a sitting position. After the robotic assistant 100 in the firstmode approaches the user who is sitting, the robotic assistant 100 canbe switched to the third mode. When there is no physical task, therobotic assistant 100 in the third mode can be switched to the firstmode. The robotic assistant 100 can operate in a fourth mode or walkingassistive mode. In this mode, the robotic assistant 100 is ready to bepushed by the user and helps support a portion of the bodyweight of theuser when the user is walking. After the robotic assistant 100 in thefirst mode approaches the user who is standing, the robotic assistant100 can be switched to the fourth mode. When there is no physical task,the robotic assistant 100 in the fourth mode can be switched to thefirst mode.

The robotic assistant 100 can operate in a fifth mode or training mode.In this mode, the robotic assistant 100 is ready to be pushed by theuser and helps support a portion of the bodyweight of the user when theuser is walking. After the robotic assistant 100 in the first modeapproaches the user who is standing, the robotic assistant 100 can beswitched to the fifth mode. When there is no physical task, the roboticassistant 100 in the fifth mode can be switched to the first mode. Thedifference between the training mode and the walking assistive mode isthat the robotic assistant 100 in the training mode can exert extraresistance to the user so that he/she has to make extra efforts to pushthe robotic assistant forward or around, thus increasing the musclestrength and coordination capability given enough training sessions. Inone embodiment, the base 10 may further include brakes. When the roboticassistant is switched to the training mode, the processor 51 controlsthe brakes to press against the moving wheels of the base 10 to createfriction. In this case, the user needs to apply more pushing force tothe robotic assistant 100, thereby increasing the muscle strength andcoordination capability given enough training sessions. It should benoted that the robotic assistant 100 may have more working modes thandiscussed above.

In one embodiment, in the training mode, the robotic assistant 100 canprovide assistance/guidance for a user doing squats. Here, squats mean astrength exercise in which the trainee lowers their hips from a standingposition and then stands back up. FIG. 9 shows an exemplary flowchart ofa method for controlling the robotic assistant when a user is doingsquats. The method may include the following steps.

Step S1001: Detect movement of a face of the user in a verticaldirection based on the images captured by the camera 40.

If a user desires to get assistance/guidance from the robotic assistant100 when he/she is doing squats, he/she needs to stand near and at theback of the robotic assistant 100. After receiving a squat exercisingcommand from a user, the processor 51 controls the display 30 to rotatesuch that the camera 40 can face backward to capture images of theenvironment behind the robotic assistant 100. In the course of the squatexercise of the user, the camera 40 is controlled to capture images ofthe environment behind the robotic assistant 100 at predeterminedintervals. The processor 51 can detect the movement of the face of theuser in the vertical direction based on the images of the environmentbehind the robotic assistant 100. The processor 51 may compare two ormore of the images that are captured successively.

In one embodiment, the processor 51 compares two successively capturedimages. Specifically, image 1 in FIG. 10 represents a previouslycaptured image, and image 2 represents a currently captured image. Theprocessor 51 may recognize the face of the user in image 1 and image 2and determine the positions of the face in image 1 and image 2. In oneembodiment, the positions of the face refer to the centers of thebounding boxes for the face in image 1 and image 2. By comparing thepositions of the face in image 1 and image 2, the processor 51 maydetermine that the face of the user is moving downward.

Step S1002: In response to detection of the movement of the face of theuser in the vertical direction, rotate the display 30 and actuate theelevation mechanism 20 to the move the display 30 up and down to allowthe camera 40 to face the face of the user during the movement of theface of the user in the vertical direction.

In one embodiment, the processor 51 controls the elevation mechanism 20to move the display 30 down a predetermined distance when the face ofthe user moves downward, and controls the elevation mechanism 20 to movethe display 30 up a predetermined distance when the face of the usermoves upward. The processor 51 then rotates the display 30 until thecamera 40 to face the face of the user. In this way, the camera 40 cankeep facing the face of the user, which allows the face of the user tohe constantly present in the middle of the display 30 for better displayoperation experience.

Referring to FIG. 11 , in one embodiment, rotating the display 30 mayinclude the following steps. Step S2001: Determine a key point in theface of the user in a current one of the images captured by the camera40.

Referring to FIG. 12 , in one embodiment, the key point may be thecenter between the eyes of the user, the center of the mouth of theuser, the nose tip of the user, and the like. In the embodiment, the keypoint is the center P between the eyes of the user. The processor 51 mayfirst determine the centers of the eyes of the user and then determinethe middle point of the line segment that is formed by connecting thetwo centers of the eyes of the user. The middle point is then determinedas the key point.

In one embodiment, points A, B, C, and D in FIG. 12 represent fourvertices of the bounding box, and the position of the key point P can becalculated according to the following formulas:

${P_{x} = {{\frac{A_{x} + B_{x} + C_{x} + D_{x}}{4}{and}P_{y}} = \frac{A_{y} + B_{y} + C_{y} + D_{y}}{4}}},$where P_(x) represent the x-coordinate of the key point P, A_(x), B_(x),C_(x), and D_(x) represent the x-coordinates of the vertices A, B, C,and D, P_(y) represent the y-coordinate of the key point P, A_(y),B_(y), C_(y), and D_(y) represent the y-coordinates of the vertices A,B, C, and D. In one embodiment, it is determined that the face of theuser is in the middle of the display 30 when

${P_{y} = {- \frac{H}{2}}},$where H represents the height of the image shown in FIG. 12 . Thecoordinate system in FIG. 12 is defined as follows: the origin of thecoordinate system is the upper left corner of the image, and x-axis andy-axis are along the width and height of the image respectively.

Step S2002: Determine an angle between a line passing through the keypoint P and a camera center and an optical axis of the camera 40.

FIG. 13 is a schematic diagram showing a simplified model of the roboticassistant 100 with the camera 40 facing backward. The simplified modelof the robotic assistant 100 has a vertical translational degree offreedom (DOF) and a rotational degree of freedom. A coordinate systemx₃y₃z₃ is built the camera center as an origin C, and the z-axis of thecoordinate x₃y₃z₃ extends along the optical axis of the camera 40 whichis the line from the focus, normal to the image plane. In oneembodiment, the pinhole camera model is used to model the camera 40. Asshown in FIGS. 14 a and 14 b, in this model, conceptually, all lightpasses through a vanishingly small pinhole placed and illuminates animage plane beneath it. The images formed on the image plane follow thelaws of projective geometry. The pinhole of the pinhole camera model isdefined as the “camera center” above. Thus, the angle θ_(obj) betweenthe z-axis and the line segment CP in FIG. 13 is the angle between theline passing through the key point P and the camera center and theoptical axis of the camera 40. The angle θ_(obj) can be also referred toas a pitch angle of the face of the user.

The principle for calculating the angle θ_(obj) is described as follows.FIG. 14 a is a diagram showing the relationship between the face of theuser and the image of the face of the user in the image plane when theuser is standing at a predetermined location from the camera center C.FIG. 14 b is a diagram showing the relationship between the face of theuser and the image of the face of the user in the image plane when theuser is standing at a random, current location. In FIGS. 14 a and 14 b,the face of the user is represented by a line segment AD that isperpendicular to the principal axis that passes through the cameracenter C and is perpendicular to the image plane. The projected pointsof the line segment AD onto the principal axis are represent by M⁰ andM¹. The points M⁰ and M¹ are mapped/projected into N⁰ and N¹ in theimage plane. The endpoints A and D are mapped/projected into A⁰ and D⁰in the image plane in FIG. 14 a, and are mapped/projected into A¹ and D¹in the image plane in FIG. 14 b. The key point P in FIGS. 14 a and 14 bis mapped/projected into Q⁰ and Q¹ in the image plane in FIGS. 14 a and14 b. According to triangle similarity theorems,

${\frac{M^{0}C}{f_{{focal}\_{length}}} = {{\frac{AD}{A^{0}D^{0}}{and}\frac{M^{1}C}{f_{{focal}\_{length}}}} = \frac{AD}{A^{1}D^{1}}}},$where f_(focal_length) represents the distance between the camera centerand the image plane. According to the two equations, it can be obtainedthe following equation:

${M^{1}C} = {\frac{A^{0}D^{0}}{A^{1}D^{1}}M^{0}{C.}}$According to triangle similarity theorems,

$\frac{M^{1}C}{f_{{focal}\_{length}}} = {\frac{M^{1}P}{N^{1}Q^{1}}.}$Since

${{{M^{1}C} = {\frac{A^{0}D^{0}}{A^{1}D^{1}}M^{0}C}},{\frac{M^{1}C}{f_{{focal}\_{length}}} = \frac{M^{1}P}{N^{1}Q^{1}}},{and}}{{\theta_{obj}^{1} = {\arctan\left( \frac{M^{1}P}{M^{1}C} \right)}},}$it can be otained the following equation:

$\theta_{obj}^{1} = {{\arctan\left( \frac{{{AD} \cdot N^{1}}Q^{1}}{A^{0}{D^{0} \cdot M^{0}}C} \right)}.}$AD and M⁰C are can be measured in advance, A⁰D⁰ are determined bycounting the number of pixels between the potins A⁰ and D⁰, N¹Q¹ aredetermined by counting the number of pixels between the potins N¹ andQ¹. In this way, the pitch angle θ¹ _(obj) of the face of the userstanding at the random, current location behind the robotic assistant100 can thus be determined.

Step S2003: Determine the moving direction of the face of the user inthe vertical direction. In one embodiment, the processor 51 maydetermine the moving direction of the face of the user in the verticaldirection by comparing two or more of the images that are capturedsuccessively, which has been discussed in conjunction with FIG. 10 .

Step S2004: Actuate the elevation mechanism to the move the display upor down based on the moving direction of the face of the user in thevertical direction. Specifically, the elevation mechanism 20 iscontrolled to move the display 30 down a predetermined distance when theface of the user moves downward, and is controlled to move the display30 up a predetermined distance when the face of the user moves upward.

Step S2005: Rotate the display based on the moving direction of the faceof the user in the vertical direction and the angle between a linepassing through the key point P and a camera center and an optical axisof the camera 40. In the embodiment, the processor 51 rotates thedisplay 30 while controlling the elevation mechanism 20 to move thedisplay 30 up or down a predetermined distance until the camera 40 facesthe face of the user.

Referring to FIG. 15 , in one embodiment, the control system 50 mayinclude a visual servoing system that includes a proportional integralderivative (PID) controller. The PID controller may receive thedifference between a target position of the key point P and a currentposition of the key point P. The target position here is the positionwhere the key point P is in the middle of the display 30, that is,

$P_{y} = {- \frac{H}{2}}$(see FIG. 12 ). The PID controller may include a proportional controllerthat applies appropriate proportional changes for the difference betweenthe target position of the key point P and the current position of thekey point P. The PID controller may include an integral controller thatexamines the position of the key point P over time and offset of thetarget position of the key point P and then corrects the controlleroutput if necessary. The PID controller may include a derivativecontroller that monitors the rate of change of the position of the keypoint P and accordingly changes the controller output when there areunusual changes.

The control system 50 may include a torso control system that receivesthe controller output from the PID controller of the visual servoingsystem. The pitch angle θ¹ _(obj) of the face of the user standing atthe current location behind the robotic assistant 100 is also inputtedinto the torso control system. The torso control system may include aPID speed controller for controlling the elevation mechanism 20. Afterthe moving direction of the face of the user is determined, the PIDspeed controller controls elevation mechanism 20 to move the display 30up or down a determined distance which causes the pitch angle θ¹ _(obj)to decrease by θ¹ ^(st) _(obj) . The torso control system may includePID position controller for controlling the display 30 to rotate tocause the pitch angle θ¹ _(obj) to decrease by θ¹ ^(st) _(obj). The θ¹_(obj) and θ¹ ^(st) _(obj) satisfy the following equation: θ¹ _(obj)+θ¹^(st) _(obj)=θ¹ _(obj). Thus, after the display 30 is moved up or down adetermined distance and has rotated for an angle of θ¹ _(obj), the pitchangle θ¹ _(obj) is equal to zero, which means that the key point P hasmoved from the current location to the target location.

The control system 50 may include a dual mode controller that mayreceive the output from the PID position controller to rotate thedisplay 30. The dual mode controller may also release the motor 302 suchthat the display 30 can be manually rotated by a user. FIG. 16 is aflowchart of a method for controlling the display 30 in an automaticcontrol mode and in a manual control mode. The method may include thefollowing steps.

Step S3001: Receive an angle signal from the PID position controller.

The dual mode controller receives the angle signal from the PID positioncontroller to rotate the display 30 by an angle of θ¹ _(obj).

Step S3002: Measure the current of the motor 302 for rotating thedisplay 30.

When there is no external force applied on the display 30, the currentof the motor 302 will be less than a minimum threshold value. When theuser applies an external force to the display 30 to manually rotate thedisplay 30, the current of the motor 302 will be greater than themaximum threshold value. By measuring and monitoring the current of themotor 302, it can determine whether the user has applied an externalforce to the display 30.

Step S3003: Determine whether the current is greater than a thresholdvalue for a preset period of time.

For example, it is determined that the user has applied an externalforce to the display 30 if the current is greater than the maximumthreshold value for 2 seconds. If so, the procedure goes to step S3004;otherwise, the procedure goes to step S3005.

Step S3004: Release the motor 302 for manual operation.

After the external force from the user is detected, the processor 51will release the motor 302. For example, the motor 302 can be disengagedfrom the display 30, which frees the display 30 and allows the user tomanually rotate the display 30.

Step S3005: Keep sending a position command to the motor 302.

If there is no external force applied on the display 30, the processor51 will keep sending a position command to the motor 302 such that thedisplay 30 can rotate to the desired position according to the anglesignal from the PID position controller.

Step S3006: Measure the current of the motor 302 for rotating thedisplay 30.

After the motor 302 is released, the current of the motor 302 will hemeasured and monitored such that whether the external force is stillapplied on the display 30 can be determined.

Step S3007: Determine whether the current is less than a threshold valuefor a preset period of time.

When the current is less than the minimum threshold value for a presetperiod of time (e.g., 2 seconds), it is determined that the externalforce applied on the display 30 has ceased; otherwise, it is determinedthat the external force is still applied on the display 30. If thecurrent is less than the minimum threshold value for a preset period oftime, the procedure goes back to step S3002. If the current is not lessthan the minimum threshold value for a preset period of time, theprocedure goes back to step S3006.

The method shown in FIG. 16 allows the display 30 to be automaticallyrotated to a position where the camera 40 faces the face of the user,and allows the user to manually rotate the display 30 to a desiredposition. After the external force has ceased, the display 30 will beswitched from the manual control mode to the automatic control mode. 1

It should be appreciated the above disclosure detailed severalembodiments of the robotic assistant 100 that can provide walkingassistance and fall prevention. As mentioned above, the roboticassistant 100 can be employed in assisted living facilities orhealthcare facilities. However, the disclosure is not limited thereto.In other exemplary usage scenarios, the robotic assistant 100 may beused in hospitals.

With the configuration described above, the robotic assistant canpromote an active living life style for the elderly people. The roboticassistant can allow them to do more exercise to maintain their mobilitycapability. Moving around also provide more chances for the elderlypeople to interact with other people (particularly in the elderly carefacility or assistive living facility) so that they feel less isolated.When a user doing squats stands properly at the back of the roboticassistant, the camera can be controlled to constantly face the face ofthe user, which allows the face of the user to be present in the centerof the display. The robotic assistant can provide guidance/assistance bydisplay information on the display, such as number of squats.

Referring to FIGS. 17 and 18 , in one embodiment, the robotic assistant100 may further include a foldable seat 90 rotatably coupled to thefirst housing 201 (which is also referred to as body 201), and anactuator 80 (see FIG. 21 ) that is configured to rotate the foldableseat 90 with respect to the body 201. The seat 90 is rotatable between afolded position (see FIG. 17 ) and an unfolded position (see FIG. 18 ).The seat 90 in the unfolded position allows a user to sit thereon tohave a rest.

The processor 51 may analyze each command instruction and rotate theseat 90 to the folded or unfolded position. The processor 51 may receivea command instruction from a user (e.g., care seeker) to rotate the seat90 to the unfolded position such that the user can sit on the seat 90.The processor 51 may receive a command instruction from the user torotate the seat 90 back to the folded position such that the roboticwalking assistant 100 is ready to be pushed by the user. Additionally,the processor 51 may rotate the seat 90 when certain conditions are met.For example, when the processor 51 determines that the user is tiredaccording to the output from camera 71, the processor 51 can rotate theseat 90 to the unfolded position such that the user can sit on the seat90. The processor 51 may receive a touch on a touch sensitive display,and a voice command via the microphone 83 and rotates the seat 90accordingly.

Referring to FIGS. 19 and 20 , in one embodiment, the seat 90 mayinclude a hollow seat body 91 and the actuator 80 is arranged within theseat body 91. The seat body 91 may include a seat base 921 and seatcover 922 that is connected to the seat base 921. The actuator 80 isarranged in the space defined by the seat base 921 and seat cover 922.

In one embodiment, the robotic walking assistant may include two supportmembers 202 and 203 fixed to the wheeled base 10. For example, thewheeled base 10 may include an upper cover 101 and the two supportmembers 202 and 203 are mounted on the upper cover 101. The two supportmembers 202 and 203 are substantially vertical and spaced apart fromeach other. The two support members 202 and 203 are received in thefirst housing 201. The seat 90 is arranged between and rotatablyconnected to the support members 202 and 203.

Referring to FIGS. 20-22 , in one embodiment, the robotic walkingassistant may include a first connecting shaft 93 that is connected thesupport member 202. The actuator 80 includes a rotating output shaft 801and the connecting shaft 93 is coaxially connected to the rotatingoutput shaft 801. In the embodiment, the upper end of the support member202 may define a through hole and the connecting shaft 93 passes throughthe through hole. Specifically, the connecting shaft 93 may include ashank 931 and a head 932 that is formed at one end of the shank 931 andhas a diameter greater than the diameter of the shank 931. The head 932abuts against the support member 202 and may be fixed to the supportmember 202 by fasteners, such as screws. The connecting shaft 93 is thusstationary with respect to the support member 202. In the embodiment,the connecting shaft 93 is substantially horizontal.

In one embodiment, the actuator 80 includes an actuator body 802 and therotating output shaft 801 protrudes from a surface of the actuator body802. The actuator body 802 is fixed to the seat cover 922. Since theconnecting shaft 93 is stationary with respect to the support member202, and the connecting shaft 93 is coaxially connected to the rotatingoutput shaft 801, the seat 90 can rotate together with the actuator body802 with respect to the connecting shaft 93 and the output shaft 801when the actuator 80 is in operation.

In one embodiment, the actuator 80 may be fixed to the seat cover 922through a first connecting member 941 and a second connecting member942. The first connecting member 941 may include a vertical tab 9411defining a through hole and a horizontal tab 9412 fixed to the seatcover 922. The connecting shaft 93 passes through the through hole inthe upper end of the support member 202, a through hole defined in theseat base 921, and the through hole in the vertical tab 9411. The secondconnecting member 942 may include a main body 9421 and a number of legs9422 protruding from a first side of the main body 9421. The legs 9422are spaced apart form one another and fixed to the vertical tab 9411.The actuator body 802 is fixed to the second side of the main body 9421opposite the first side. In one embodiment, the main body 9421 maydefine a through hole. The end of the rotating output shaft 801 passesthrough the through hole of the main body 9421 and is connected to thefirst connecting shaft 93. In one embodiment, the end of the rotatingoutput shaft 801 may include a first disc 803, and the first connectingshaft 93 may include a second disc 933 at its end. The first disc 803and the second disc 933 may be connected to each other by fasteners,such as screws. The first connecting shaft 93 is thus coaxiallyconnected to the rotating output shaft 801.

Referring to FIG. 23 , in one embodiment the robotic walking assistantmay include a second connecting shaft 95 that is connected the secondsupport member 203. In the embodiment, the upper end of the supportmember 203 may define a through hole and the second connecting shaft 95passes through the through hole. Specifically, the second connectingshaft 95 may include a shank 951 and a head 952 that is formed at oneend of the shank 951 and has a diameter greater than the diameter of theshank 951. The head 952 abuts against the support member 203 and may befixed to the support member 203 by fasteners, such as screws. The secondconnecting shaft 95 is thus stationary with respect to the supportmember 203. In the embodiment, the second connecting shaft 95 issubstantially horizontal.

The support the seat 90 is supported by and rotatable with respect tothe second connecting shaft 95. In one embodiment, the seat 90 isrotatably connected to the second connecting shaft 95 through a thirdconnecting member 943. Specifically, the third connecting member 943 mayinclude a vertical tab 9431 defining a through hole and a horizontal tab9432 fixed to the seat cover 922. The connecting shaft 95 passes throughthe through hole in the upper end of the support member 203, a throughhole defined in the seat base 921, and the through hole in the verticaltab 9431. The second connecting shaft 95 and the first connecting shaft93 extends along the same axis of rotation, about which the seat 90rotates.

In one embodiment, the robotic walking assistant may further include atorsion spring 96 that is arranged around the second connecting shaft9S. The torsion spring 96 has two free ends that respectively abutagainst the foldable seat 90 and the second connecting shaft 95. Thetorsion spring 90 is pre-loaded such that the extra spring forcegenerated could counterweight the force (e.g., a pushing force from auser) exerted on the seat 90 when the seat 90 is folded. In oneembodiment, a spring holder 944 is fixed to the distal end of the secondconnecting shaft 95, and the torsion spring 96 is arranged between thespring holder 944 and the vertical tab 9431. One leg 961 of the torsionspring 96 abuts against the horizontal tab 9432, and the other leg 962is fit in a groove 9441 defined in the spring holder 944, therebyholding the torsion spring 96 in place.

In one embodiment, the robotic walking assistant may further include anelastic member arranged between the third connecting member 943 and thesecond connecting shaft 95. Specifically, the third connecting member943 may include a protruding portion 9433 protruding from the horizontaltab 9432 and extending away from the vertical tab 9431. In theembodiment, the elastic member is a spring-loaded pin 945 that isreceived in a hole defined in the spring holder 944. The upper end ofthe elastic member abuts against the protruding portion 9433. Theelastic member applies a pushing force to the foldable seat 90, therebyexerting torque to the foldable seat to compensate for gravity duringrotation of the foldable seat 90 from the folded position to theunfolded position.

Referring again to FIG. 20 , in one embodiment, the seat base 921 maydefine two chambers 9211 and 9212. The actuator 80, the first connectingmember 941, and the second connecting member 942 are received in thechamber 9211, and the first connecting shaft 93 extends into the chamber9211 to be connected to the rotating output shaft 801. The thirdconnecting member 943, the spring holder 944, the torsion spring 96, andthe elastic member 97 are received in the chamber 92112, and the secondconnecting shaft 95 extends into the chamber 9212.

Referring to FIG. 24 , in one embodiment, the seat base 921 may define astorage space 9213 in a lower side and include a door 9214 rotatablyconnected to the seat base 921. The door 9214 is configured to keep thestorage space 9213 closed. The storage space 9213 is to store objects,such as medicines, equipment, and food.

Referring to FIG. 17 again, in one embodiment, the robotic walkingassistant may further include a light sensor 78 arranged within thewheeled base 10. For example, the light sensor 78 may be arranged in athrough hole defined in the wheeled base 10. The light sensor 78 iselectrically coupled to the control system 50. The control system 50 maycontrol the actuator 80 to rotate the foldable seat 90 to the unfoldedposition in response to the light sensor 78 detecting presence of a userfor a preset time period. For example, after detecting the presence of aleg of the user in the field of view (FOV) of the light sensor 78 forthree seconds, the control system 50 controls the actuator 80 to rotatethe foldable seat 90 to the unfolded position. The light sensor 78 maybe an infrared (IR) sensor. It should be noted that in other embodimentsmultiple IR sensors may be used so as to provide a large range ofdetection.

Referring to FIG. 25 , in one embodiment, a method for controlling therobotic walking assistant may include the following steps.

Step S251: Receive a command indicating rotation of the foldable seat.

The control system 50 may receive the command from a user, and thecommand may be a touch input command, a voice command, and the like. Theprocessor 51 may receive the command when certain conditions are met.For example, the processor 51 may receive the command after detectingthe presence of a leg of the user in the field of view (FOV) of thelight sensor 78 for three seconds.

Step S252: Send a position command to the actuator to rotate thefoldable seat to a desired position based on the command indicatingrotation of the foldable seat.

The processor 51 may analyze the command indicating rotation of thefoldable seat 90 and send a position command to the actuator 80. Forexample, if the command indicates rotating the foldable seat 90 to theunfolded position, the processor 51 may send a position command to theactuator 80 to rotate foldable seat 90 to the unfolded positionindicated by the command. In one embodiment, the actuator 80 may be aservo motor, and the processor 51 may control the actuator 80 to operatein a position mode. In the position mode, processor 51 needs to keepsending position commands to the actuator 80 such that the actuator 80can drive the foldable seat 90 to rotate to and remain in a desiredposition. When the actuator 80 receives a position command, the outputshaft of the actuator will rotate to the angular position correspondingto the position command and the actuator 80 will try to keep the outputshaft in that angular position, even if an external force pushes againstit.

Step S253: Detect whether an external force has applied to the foldableseat.

In one embodiment, the processor 51 may determine whether an externalforce has applied to the foldable seat 90 based on the current of theactuator 80. In the embodiment, the external force refers to a forcefrom a user that exerts a torque to the foldable seat 90. For example, auser may push the foldable seat 90 in certain circumstances, therebygenerating a torque to the foldable seat 90. In one embodiment, stepS253 may include the following steps.

Step S2531: Measure current of the actuator.

Step S2532: Determine that the external force has applied to thefoldable seat in response to the current of the actuator being greaterthan a preset value for a preset time period.

The torque generated due to the external force applied to the foldableseat 90 is proportional to the current of the actuator 80. The processor51 may monitor the current of the actuator 80 and determines that theexternal force has applied to the foldable seat when the current of theactuator 80 is greater than a preset value for a preset time period(e.g., 2 seconds). Otherwise, the processor 51 determines that noexternal force has applied to the foldable seat 90. The procedure goesto step S254 when an external force has applied to the foldable seat,and goes to step S255 when no external force has applied to the foldableseat.

Step S254: Release the actuator to allow the foldable seat to bemanually rotated in response to detection of the external force.

As described above, the actuator 80 in the position mode will try tokeep its output shaft in that angular position even if an external forcepushes against it. After determining that an external force has appliedto the foldable seat 90, the processor 51 may send a signal to releasethe actuator 80 from the position control to allow the output shaft torotate due to the external force applied to the foldable seat 90. As aresult, a user can manually rotate the foldable seat 90 to a desiredposition.

Step S255: Send the position command to the actuator.

When no external force has applied to the foldable seat, the processor51 will send the position command to the actuator 80 so as to retain thefoldable seat in the desired position. After that, the procedure goesback to step S253.

In one embodiment, after step S254, the method may further include thesteps as follows: Measure current of the actuator 80; determine aposition of the foldable seat 90; and perform a compliant control to thefoldable seat 90 to compensate for the external force in response to thefoldable seat 90 being in the folded position or in the unfoldedposition. The compliant control enables the foldable seat 90 to reactsally to the manual operation of a user.

FIG. 26 shows an exemplary dynamic model of the foldable seat 90. Thedynamic model is a single joint model and can be expressed as:r=J_(l)θ_(l)+β_(l)θ_(l)+mgrcosθ₁−k_(s)θ_(l)−F_(ext) ^(l),where r represents toque, θ_(l) represents angular position of the foldseat 90, m represents the mass of the foldalbe seat 90, k_(s) representstorsional spring constant, F_(ext) represents the external force from auser applied to the foldable seat 90, c represents the center ofrotation about which the foldable seat 90 rotates, l represents theperpendicular distance from the center of rotation to the external forceF_(ext), and J_(l) represents axial inertia of the seat 90 relative tothe rotational axis, and β_(l) represents damping coefficient that isproportional to speed.

In one embodiment, the position control for the dynamic model can beimplemented by using a PD controller based on an equation as follows:

${I = \frac{{k_{p}\left( {\theta_{l_{d}} - \theta_{l}} \right)} + {k_{d}{\overset{˙}{\theta}}_{l}}}{k_{t}}},$where I represents current of the actuator 80, θ_(ld) represents adesired angular position of the foldable seat 90, θ_(l) represents thecurrent angular position of the foldable seat 90, k_(p) representsproportional gain, k_(d) represent derivative gain, and k_(t) representstorque constant. When an external force is applied to the foldable seat90, it will comply with and respond softly to the external force, whichcan be achieved using admittance control. Specifically, as shown in thegeneral scheme of FIG. 27 , the current angular position θ_(t_0) of thefoldable seat 90 is input into an admittance controller and theadmittance controller outputs an angular position difference, therebyobtaining a new desired angular position θ_(t_d), which is inputted intoseat position control module. The seat position control module thengenerates a torque ι_(m) of the actuator 80 based on the new desiredangular position θ_(t_d), which is input into the dynamic model of thefoldable seat 90. The external force F_(ext) from a user, which can beestimated based on the measured current of the actuator 80 using theequation above in relation to the dynamic model, is input to theadmittance controller. The dynamic model of the foldable seat 90 alsooutputs the actual angular position of the foldable seat 90 to the seatposition control module.

Based on the dynamic model of FIG. 26 and the admittance scheme of FIG.27 , the after step S254, the method may further include the steps asshown in FIG. 28 .

Step S281. Measure current of the actuator 80.

Step S282: Determine a position of the foldable seat 90.

The processor 51 may determine the position of the foldable seat 90based on output from a rotary encoder that is mounted to the actuator 90and provides feedback to the processor 51 by tracking the angularposition of the output shaft of the actuator 90. If the foldable seat 90is in the folded or unfolded position, the procedure goes to step S283.Otherwise, the procedure goes back to step S253.

Step S283: The admittance controller outputs a new desired angularposition θ_(l_d) the scat position control module base on the inputtedcurrent angular position θ_(l_0) of the foldable seat 90. In oneembodiment, the current angular position θ_(l_0) is set to 10 degreeswhen the foldable seat 90 is in the unfolded position, and the currentangular position θ_(l_0) is set to 100 degrees when the foldable seat 90is in the folded position.

Step S284: The seat position control module generates a torque τ_(m) ofthe actuator 80 and outputs the torque τ_(m) to the seat mechanismdynamics.

Step S285: The external force F_(ext) from a user is input to theadmittance controller. The direction effect of the external force is toincrease the motor current, which will in turn generate a high torque,this new torque will be computed by the dynamic model. The admittancecontroller will compute and update fhe new “desired” angular positionbased on the external force and the dynamic model.

Contrary to a stiff control, where a desired position command is trackedand any deviation from such reference position will be quicklycompensated, a compliant control allows deviations from such referenceposition. However, the compliant control allows the foldable seat 90 tofinally rotate to the desired position even after the external forcedoes not act on the foldable seat 90. With the compliant control, therobotic walking assistant can measure the current of the actuator andadjust the torque of the actuator to compensate for the external forcefrom a user when the actuator is released.

It should be noted that the compliant control reflected in steps S283 toS285 is only an example, and may change according to actual needs. Forexample, a mechanical damping system may be used for the compliantcontrol.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the present disclosure to the precise forms disclosed. Manymodifications and variations are possible in view of the aboveteachings. The embodiments were chosen and described in order to bestexplain the principles of the present disclosure and its practicalapplications, to thereby enable others skilled in the art to bestutilize the present disclosure and various embodiments with variousmodifications as are suited to the particular use contemplated.

What is claimed is:
 1. A robotic assistant, comprising: a wheeled base;a body positioned on the base; a foldable seat rotatably connected tothe body; an actuator configured to rotate the foldable seat withrespect to the body; a control system that receives commandinstructions, the actuator electrically coupled to the control system;wherein in response to the command instructions, the control system isconfigured to control the actuator to rotate the foldable seat to afolded position or an unfolded position; wherein the control system isfurther configured to detect whether an external force from a user hasapplied to the foldable seat, and release the actuator to allow thefoldable seat to be manually rotated.
 2. The robotic assistant of claim1, wherein the foldable seat comprises a hollow seat body and theactuator is arranged within the seat body.
 3. The robotic assistant ofclaim 1, further comprising two support members fixed to the wheeledbase and a first connecting shaft that is connected to one of the twosupport members, wherein the actuator comprises a rotating output shaft,and the connecting shaft is coaxially connected to the rotating outputshaft.
 4. The robotic assistant of claim 1, further comprising twosupport members fixed to the wheeled base, a second connecting shaftthat is connected to one of the two support members, and a torsionspring, wherein the foldable seat is rotatable with respect to thesecond connecting shaft, the torsion spring is arranged around thesecond connecting shaft, the torsion spring comprises two ends thatrespectively abut against the foldable seat and the second connectingshaft.
 5. The robotic assistant of claim 1, wherein the foldable seatcomprises a seat body that comprises a seat base and seat cover, theseat base defines a storage space in a lower side and comprises a doorrotatably connected to the seat base, and the door is configured to keepthe storage space closed.
 6. The robotic assistant of claim 1, furthercomprising a light sensor arranged within the wheeled base, wherein thelight sensor is electrically coupled to the control system, the controlsystem is configured to control the actuator to rotate the foldable seatto the unfolded position in response to the light sensor detectingpresence of a user for a preset time period.
 7. A robotic assistant,comprising: a wheeled base; a foldable seat that is rotatable withrespect to the wheeled base; an actuator configured to rotate thefoldable seat with respect to the body; one or more processors, amemory; and one or more programs, wherein the one or more programs arestored in the memory and configured to be executed by the one or moreprocessors, the one or more programs comprise: instructions forreceiving a command indicating rotation of the foldable seat;instructions for sending a position command to the actuator to rotatethe foldable seat to a desired position based on the command indicatingrotation of the foldable seat; instructions for detecting whether anexternal force has applied to the foldable seat; and instructions forreleasing the actuator to allow the foldable seat to be manually rotatedin response to detection of the external force.
 8. The robotic assistantof claim 7, wherein the instructions for detecting whether the externalforce has applied to the foldable seat comprise: instructions formeasuring current of the actuator; and instructions for determining thatthe external force has applied to the foldable seat in response to thecurrent of the actuator being greater than a preset value for a presettime period.
 9. The robotic assistant of claim 7, wherein the foldableseat comprises a hollow seat body and the actuator is arranged withinthe seat body.
 10. The robotic assistant of claim 7, further comprisingtwo support members fixed to the wheeled base and a first connectingshaft that is connected to one of the two support members, wherein theactuator comprises a rotating output shaft, and the connecting shaft iscoaxially connected to the rotating output shaft.
 11. The roboticassistant of claim 7, further comprising two support members fixed tothe wheeled base, a second connecting shaft that is connected to one ofthe two support members, and a torsion spring, wherein the foldable seatis rotatable with respect to the second connecting shaft, the torsionspring is arranged around the second connecting shaft, the torsionspring comprises two ends that respectively abut against the foldableseat and the second connecting shaft.
 12. The robotic assistant of claim7, wherein the foldable seat comprises a seat body that comprises a seatbase and seat cover, the seat base defines a storage space in a lowerside and comprises a door rotatably connected to the seat base, and thedoor is configured to keep the storage space closed.
 13. The roboticassistant of claim 7, further comprising a light sensor arranged withinthe wheeled base, wherein the light sensor is electrically coupled tothe control system, the control system is configured to control theactuator to rotate the foldable seat to the unfolded position inresponse to the light sensor detecting presence of a user for a preset,time period.
 14. A method for controlling a robotic assistant, themethod comprising: providing a wheeled base; providing a foldable seatthat is rotatable with respect to the wheeled base; providing anactuator that is configured to rotate the foldable seat with respect tothe body; receiving a command indicating rotation of the foldable seat;sending a position command to the actuator to rotate the foldable seatto a desired position based on the command indicating rotation of thefoldable seat; detecting whether an external force has applied to thefoldable seat; and releasing the actuator to allow the foldable seat tobe manually rotated in response to detection of the external force. 15.The method of claim 14, wherein the external force is determined basedon current of the actuator.
 16. The method of claim 15, whereindetecting whether the eternal force has applied to the foldable seatcomprises: measuring current of the actuator; and determining that theexternal force has applied to the foldable seat in response to thecurrent of the actuator being greater than a preset value for a presettime period.
 17. The method of claim 14, further comprising, afterreleasing the actuator to allow the foldable seat to be manually rotatedin response to detection of the external force, measuring current of theactuator; determining a position of the foldable seat; and performing acompliant control to the foldable seat to compensate for the externalforce in response to the foldable seat being in a folded position or inan unfolded position.
 18. The method of claim 14, further comprising:providing a light sensor that is arranged within the wheeled base;detecting presence of a user using the light sensor; and controlling theactuator to rotate the foldable seat to the unfolded position inresponse to detection of presence of the user.